package com.zy;

import dev.langchain4j.model.openai.OpenAiChatModel;
import dev.langchain4j.service.AiServices;
import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.UserMessage;

/**
 * @program: AI_langchain4j
 * @description: AI service( systemmessage, usermessage)
 * @author: zy
 * @create: 2025-06-28 14:47
 */
public class _05_AiService {

    public static void main(String[] args) {
        String apiKey = System.getenv("OPEN_AI_KEY");

        OpenAiChatModel model = OpenAiChatModel.builder()
                .apiKey(apiKey)
                .modelName("deepseek-chat")
                .baseUrl(   "https://api.deepseek.com"    )    //deepseek的API地址
                .logRequests(true)
                .logResponses(true)
                .build();
        //根据接口生成代理对象
        Assistant assistant = AiServices.create(Assistant.class, model);
        // jdk面向接口的动态代理.
        String response= assistant.chat("你好，什么是systemmessage,什么是usermessge?有什么区别?");
        System.out.println(response);
    }


}


interface Assistant {
    @SystemMessage("你是一位大模型专家，特别擅长langchain4j相关技术，你的回答必须用英文回答。回答问题时比较有条理，回答的内容要专业，有深度。")
    @UserMessage("我给你的新问题:  {{it}}")
    String chat(String userMessage);
}
